package blazej.edytorGui;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.SpringLayout;
import javax.swing.JList;
import javax.swing.border.TitledBorder;
import javax.swing.border.LineBorder;
import javax.swing.text.Caret;

import java.awt.Color;
import javax.swing.JButton;

import blazej.edytir.dane.Druzyna;
import blazej.edytir.dane.Klub;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JLabel;
import javax.swing.JTextField;



public class KlubGui extends JFrame {
	Klub klub=new Klub();
	static LigaGui ligagui;
	private JPanel contentPane;
	JList list;
	private JTextField txtNazwa;
	private int id;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					KlubGui frame = new KlubGui(ligagui);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public KlubGui(LigaGui ligagui) {
		this.ligagui=ligagui;
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 510, 331);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		SpringLayout sl_contentPane = new SpringLayout();
		contentPane.setLayout(sl_contentPane);
		
		 list = new JList();
		 sl_contentPane.putConstraint(SpringLayout.NORTH, list, 21, SpringLayout.NORTH, contentPane);
		 sl_contentPane.putConstraint(SpringLayout.WEST, list, 10, SpringLayout.WEST, contentPane);
		 sl_contentPane.putConstraint(SpringLayout.SOUTH, list, 188, SpringLayout.NORTH, contentPane);
		sl_contentPane.putConstraint(SpringLayout.EAST, list, 394, SpringLayout.WEST, contentPane);
		list.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0), 3), "Lista Dru\u017Cyn", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		contentPane.add(list);
		
		JButton btnDodajDruyne = new JButton("Dodaj Dru\u017Cyne");
		sl_contentPane.putConstraint(SpringLayout.NORTH, btnDodajDruyne, 6, SpringLayout.SOUTH, list);
		sl_contentPane.putConstraint(SpringLayout.WEST, btnDodajDruyne, 0, SpringLayout.WEST, list);
		btnDodajDruyne.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				if(arg0.getButton()==MouseEvent.BUTTON1){
					dodajDruzyne();
				}
			}
		});
		contentPane.add(btnDodajDruyne);
		
		JButton btnEdytujDruyne = new JButton("Edytuj Dru\u017Cyne");
		sl_contentPane.putConstraint(SpringLayout.NORTH, btnEdytujDruyne, 6, SpringLayout.SOUTH, list);
		sl_contentPane.putConstraint(SpringLayout.EAST, btnEdytujDruyne, -195, SpringLayout.EAST, contentPane);
		btnEdytujDruyne.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if(e.getButton()==MouseEvent.BUTTON1){
					edytujDruzyne(getKlub().podajDruzyne(getList().getSelectedIndex()));
				}
			}
		});
		contentPane.add(btnEdytujDruyne);
		
		JButton btnUsuDruyne = new JButton("Usu\u0144 Dru\u017Cyne");
		sl_contentPane.putConstraint(SpringLayout.NORTH, btnUsuDruyne, 0, SpringLayout.NORTH, btnEdytujDruyne);
		sl_contentPane.putConstraint(SpringLayout.WEST, btnUsuDruyne, 6, SpringLayout.EAST, btnEdytujDruyne);
		btnUsuDruyne.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				if(arg0.getButton()==MouseEvent.BUTTON1){
					usuwanie();
				}
			}
		});
		contentPane.add(btnUsuDruyne);
		
		JButton btnWyjd = new JButton("Zapisz i Wyjd\u017A");
		btnWyjd.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if(e.getButton()==MouseEvent.BUTTON1){
					zapisz();
				}
			}
		});
		sl_contentPane.putConstraint(SpringLayout.SOUTH, btnWyjd, -10, SpringLayout.SOUTH, contentPane);
		sl_contentPane.putConstraint(SpringLayout.EAST, btnWyjd, -10, SpringLayout.EAST, contentPane);
		contentPane.add(btnWyjd);
		
		JLabel lblNewLabel = new JLabel("Nazwa Klubu");
		sl_contentPane.putConstraint(SpringLayout.NORTH, lblNewLabel, 1, SpringLayout.NORTH, contentPane);
		sl_contentPane.putConstraint(SpringLayout.WEST, lblNewLabel, 10, SpringLayout.WEST, contentPane);
		contentPane.add(lblNewLabel);
		
		txtNazwa = new JTextField();
		sl_contentPane.putConstraint(SpringLayout.WEST, txtNazwa, 7, SpringLayout.EAST, lblNewLabel);
		contentPane.add(txtNazwa);
		txtNazwa.setColumns(10);
	}

	public Klub getKlub() {
		return klub;
	}

	public void setKlub(Klub klub) {
		this.klub = klub;
	}

	public JList klubgui() {
		return list;
	}

	public void setList(JList list) {
		this.list = list;
	}
	
	//FUNKCJE
	
	void dodajDruzyne(){
		DruzynaGui druzynagui= new DruzynaGui(this);
		druzynagui.setVisible(true);
		Druzyna zawodnik =new Druzyna();
		druzynagui.setDruzyna(zawodnik);
		
		
		
	}
	
	
	void edytujDruzyne(Druzyna druzyna){
		DruzynaGui druzynagui= new DruzynaGui(this);
		druzynagui.setVisible(true);
		druzynagui.setDruzyna(druzyna);
		druzynagui.cos();
		druzynagui.getList().setListData(druzynagui.getDruzyna().getDruzyna());
	}
	
	
	void usuwanie(){
		
		klub.usunDruzyne(list.getSelectedIndex());
		
		list.setListData(klub.getKlub());
		
	}
	
	//*************************************************
	
	
	
	void dodaj(){
id=Id.idKlubu();
	
		
		String nazwa=(txtNazwa.getText());
		
	
		klub.setNazwa(nazwa);
		
		klub.setIdKlubu(id);
		ligagui.getLiga().dodajKlub(klub);
		
		   System.out.println(ligagui.getLiga().iloscKlubow());
		   
	}
	
	void edycjaDruzyny(Klub klub){
		klub.setNazwa(txtNazwa.getText());
		
	}
	
	
	void zapisz(){
		if(ligagui.getList().getSelectedIndex()<0){
			dodaj();
			
			
		}
		else{
			edycjaDruzyny(ligagui.getLiga().podajKlub(ligagui.getList().getSelectedIndex()));
		}
		JOptionPane.showMessageDialog(null, "Klub dodany");
		zamknij();
	}
	
	void zamknij(){
		ligagui.getList().setListData(ligagui.getLiga().getLiga());
		dispose();
	}
	void tekst (){
		getTxtNazwa().setText(klub.getNazwa());
	}
	

	public JList getList() {
		return list;
	}

	public static LigaGui getLigagui() {
		return ligagui;
	}

	public static void setLigagui(LigaGui ligagui) {
		KlubGui.ligagui = ligagui;
	}

	public JTextField getTxtNazwa() {
		return txtNazwa;
	}

	public void setTxtNazwa(JTextField txtNazwa) {
		this.txtNazwa = txtNazwa;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	
	
	
	
	
}
